Automated optical inspection (AOI) systems are used to inspect objects, such as printed circuit boards (PCBs), for a variety of defects. The system can inspect a PCB for proper component presence and orientation, proper solder joint formation, and solder bridges. In one optical inspection application, a system can inspect the toe fillet solder joints of a quad flat pack (QFP) integrated circuit. Such a package has four edges with leads protruding from each edge. Each lead is connected to a pad on the PCB by a solder joint. An incorrectly formed solder fillet will have an appearance that can be detected using well-known image processing algorithms.
Such an AOI system includes a camera head that shuttles back and forth relative to the PCB. The camera head includes an illumination system and a plurality of cameras. The illumination system may be provided, for example, as one or more light emitting diodes (LEDs), which provides lighting for the purpose of highlighting certain surfaces on the PCB and darkening other surfaces on the PCB to allow the cameras to capture images that are amenable to image processing analysis. Typically, the lights are normally turned off and are turned on only when the camera head is directly over a region or zone of interest on the PCB. Thus, the illumination system operates as a strobe light. With this strobe light approach, it is not necessary for the camera head to stop in order to acquire an image.
Each camera in the camera head captures a useful image of a particular zone of interest only when the light is on. Moreover, depending upon the particular region of interest over which the camera head is disposed, the illumination system operates in a particular lighting mode meaning that the illumination system provides light from particular ones of the LEDs (rather than from all of the LEDs). The lighting mode is selected to enhance the highlighting and darkening of the PCB regions and facilitate the image processing analysis. Thus the illumination system operates in a series of lighting modes during which particular cameras are able to capture images in a particular zone of interest.
Typically, the board being inspected is divided into stripes. Each stripe corresponds to a shuttle path along which the camera head travels. Each stripe is divided into fields of view (FOVs). As the camera head shuttles across various portions of the board, the illumination system strobes the lights in accordance with predetermined lighting modes to produce a flow of images from the cameras in the camera head. The images are transferred to memory via framegrabbers for analysis.
One conventional method of inspecting solder fillets is disclosed in U.S. Pat. No. 5,245,421, which discloses illuminating the fillet from its sides while a camera also views the fillet from the side to capture an image along an axial dimension of the fillet. Such a lighting technique or mode produces a view of the fillet in which the edges of the fillet appear light and the center of the fillet appears dark. The picture of the fillet is commonly referred to as having “snake eyes” or “cheeks” because a transect across it is light, then dark, then light again. A defective fillet will typically have low contrast. For example, a joint with inadequate solder will have no curvature and will look more uniformly dark. A joint with excess solder will also have low curvature and will also look more uniformly dark.
Generally, the inspection program in conventional AOI systems defines a series or pattern of paths, e.g., stripes, along the PCB being inspected. The camera head shuttles in a predetermined pattern along the stripes. The position of each of the cameras in the camera head relative to the PCB changes each time the camera head moves. Thus, components on the PCB do not appear in consistent positions in fields of camera view. A given field of view may, therefore, contain fillets of multiple orientations. For example, when the camera head is in one stripe, a given view may contain the upper left corner of one QFP and the lower right corner of another QFP. In another view, however, four QFPs may converge so that there are corners of four separate QFPs in the view. Some leads would be pointing east, others south, others west, and others north.
A lighting mode which lights the scene from north and south would produce the desired snake eyes pattern on both east-pointing and west-pointing leads, but would not produce the snake eyes pattern in the north-pointing and south-pointing leads. One lighting mode is thus unable to properly illuminate all four sets of toe fillets.
A second frame would have to be taken with an east-west lighting mode, to produce the snake eyes image on the north-pointing and south-pointing toe fillets. This arrangement requires that the camera head pass over the PCB for each lighting mode that is needed to inspect a given point on the board. Each pass over the board requires a significant amount of time. Since inspection systems are often a production process bottleneck, each additional pass is thus significant.
U.S. Pat. No. 5,260,779, assigned to the assignee of the present invention, attempts to reduce the inspection time of a PCB by taking pictures with two different lighting modes for each point of the circuit board. The system includes four angled cameras arranged in a symmetrical quartet, with all four cameras tilted thirty degrees from vertical. The optical axis of each camera is aligned to a common point in the plane of the circuit board to be inspected. The cameras are arranged in two opposing pairs such that the cameras in the first camera pair oppose each other in a direction perpendicular to the primary direction of motion of the camera head and the cameras in the second camera pair face each other in a direction which is parallel to the primary direction of motion. The cameras in the first pair operate in their odd video field while the cameras in the second pair operate in their even video field, and vice versa. The head velocity is controlled in such a way that each of the cameras takes one complete frame for every field of view of camera head motion.
The lighting system described in U.S. Pat. No. 5,260,779 supplies two flashes for each field of view's worth of motion along the board. One flash is for the first and second cameras which make up the first opposing pair and a second flash is for the third and fourth cameras which make up the second opposing pair. The camera head is required to visit a given point on the board once for each lighting mode/camera pair combination. Thus, there will be two visits if there are two lighting modes required for a camera. If there are three lighting modes for any camera, the camera head must visit the point three times, and so forth. In general, “n” passes over a field of view are required if “n” lighting modes are required for the inspection program.
A typical circuit board inspection program uses three to ten lighting modes, and therefore requires three to ten passes of the camera head relative to the circuit board. Each pass can take several seconds and thus in many automated assembly lines, the inspection machine is the slowest machine, and is therefore a process bottleneck.
A further disadvantage of known systems is the likelihood of losing image data due to the way the image data is captured and stored. Such optical inspection systems include a frame acquisition system having local memory and/or local processing. Thus, the main computer must access the image data over a bus, such as a PCI bus.
The overhead required of the processor to manage this process and the time required for the data transfer combine to significantly reduce the time available to analyze image data. For example, in a system where each camera has a dedicated processor, or a single dedicated memory, or both, the processor assigned to a particular heavily used camera may saturate well before the processors assigned to the other cameras saturate. In systems where a dedicated memory is assigned to each camera, it might be impossible to analyze all the windows in a given FOV before the camera begins to deliver image data for the next FOV. In order to receive incoming data from the next frame, the data being processed would be flushed to make room for the new incoming data or alternatively, the new data is simply written over the old data. In such a case, the old data is lost and the camera head would have to stop, or go back and retake the view later to regain the data. This leads to significant time delays in inspection time.
In addition, frame grabbing systems typically handle multiple cameras by multiplexing, but cannot handle them concurrently. For example, in the four camera system mentioned above, before camera two can be triggered, the entire image from camera one would have to be transmitted, and so forth. Thus, the full bandwidth of the cameras cannot be utilized.
It would, therefore, be desirable to provide an AOI system that triggers cameras asynchronously for allowing a point on an object under inspection to be imaged with multiple lighting modes in a single pass over the object. It would further be desirable for the optical processing system to include an image acquisition system that allows simultaneous transmission of image data from multiple cameras into main memory for opportunistic processing, which need not be completed prior to acquiring data from a subsequent stripe.